CRONO SDK 1.0.1
Crono SDK custom Types

Data Structures

struct  CRONO_DeviceInfo
 
struct  CRONO_AcquisitionInfo
 
struct  CRONO_AcquisitionStatus
 
struct  CRONO_CameraSettings
 

Typedefs

typedef uint8_t cronoBool
 
typedef struct Crono * CRONO_H
 

Enumerations

enum  CRONO_Return {
  NO_ERR = 0 , DEVICE_NOT_FOUND = 1 , LOGIC_VERSION_FAIL = 2 , DEVICE_NOT_OPEN = 3 ,
  DEVICE_ALREADY_OPEN = 4 , DEVICE_OPEN_AS_CONVERTER = 5 , INVALID_DATA_FILE = 6 , SENSOR_FAILED = 7 ,
  POWER_FAILED = 8 , INVALID_PIXEL_NUMBER = 9 , INVALID_DEAD_TIME = 10 , INVALID_HALVES_CONFIG = 11 ,
  INVALID_START_RATE = 12 , INVALID_DIVISION_FACTOR = 13 , INVALID_FRAME_BURST_COUNT = 14 , INVALID_GATE_LENGHT = 15 ,
  INVALID_LASER_SYNC_LENGHT = 16 , INVALID_CONFIG = 17 , INVALID_THRESHOLD = 18 , NO_SUCH_FILE_OR_DIRECTORY = 19 ,
  ACQ_ONGOING = 20 , ACQ_EXT_TRIG_TIMEOUT = 21 , RAM_FULL = 22 , NULL_POINTER = 23 ,
  PATTERN_TOO_LONG = 24 , INVALID_CHANNEL = 25 , INVALID_ENUM = 26 , FPGA_FAILED = -1 ,
  FPGA_TIMEOUT = -2
}
 
enum  CRONO_SensorType { CRONO_8X8 = 0 , CRONO_128X1 = 1 }
 
enum  CRONO_PixelMode { TIMING = 0 , COUNTING = 1 }
 
enum  CRONO_AuxInputMode { OFF = 0 , RISING_EDGE = 1 , FALLING_EDGE = 2 , BOTH_EDGES = 3 }
 

Detailed Description

Custom types used by the SDK.


Data Structure Documentation

◆ CRONO_DeviceInfo

struct CRONO_DeviceInfo

Struct containing information about the version and connection speed grade of a connected Crono device.

Examples
CRONO_SDK_Example.c.
Data Fields
int FwMajorVersion Firmware major version.
int FwMinorVersion Firmware minor version.
int FwPatchVersion Firmware patch version.
int SdkMajorVersion SDK major version.
int SdkMinorVersion SDK minor version.
int SdkPatchVersion SDK patch version.
CRONO_SensorType SensorType Sensor type, 128x1 or 8x8.
char Serial[MAX_SERIAL_LENGTH] Serial number of the CRONO camera.
int UsbSpeed Speed grade of the USB connection.

◆ CRONO_AcquisitionInfo

struct CRONO_AcquisitionInfo

Struct containing information about the acquisition.

Examples
CRONO_SDK_Example.c.
Data Fields
uint64_t acquiredFramesCount Number of acquired frames.
char DateTime[MAX_DATETIME_LENGTH] Date and time of acquisition.

◆ CRONO_AcquisitionStatus

struct CRONO_AcquisitionStatus

Struct containing the status of an ongoing Crono acquisition.

Examples
CRONO_SDK_Example.c.
Data Fields
double acquisitionTime Elapsed time in seconds since acquisition start.
int64_t auxBitACount Count of bit A samples>.
int64_t auxBitBCount Count of bit B samples>.
int64_t availableFramesCount Number of currently buffered frames.
int64_t availableHistogramCount Number of currently buffered histograms.
int64_t availableRawCount Number of currently buffered raw data values.
int64_t availableTimeTagsCount Number of currently buffered time tags values.
int64_t capturedFrameCount Number of frames captured by the camera since acquisition start.
int64_t decodedFrameCount Number of frames decoded by SDK since acquisition start.
cronoBool deviceRamFull Boolean value that indicates wether the Crono device RAM is full.
int64_t deviceRamUsageBytes Current usage of Crono device RAM expressed in bytes.
int64_t downloadedBytes Number of downloaded bytes on the host computer since acquisition start.
int64_t hostAllocatedBytes Current ram usage for storing acquired and decoded data on the host computer.
cronoBool ongoing Boolean value that indicates wether the acquisition is ongoing.

◆ CRONO_CameraSettings

struct CRONO_CameraSettings

Struct containing camera settings.

Examples
CRONO_SDK_Example.c.
Data Fields
uint64_t acqMaxFrames Total number of frames to be acquired.

A value of 0 means no limit.

cronoBool acquireOnExtTrigger True if acquisition is controller by external trigger.
int activePixels Number of active pixels.
CRONO_AuxInputMode AuxInputASamplingMode Aux A (Gate input) sampling mode.
CRONO_AuxInputMode AuxInputBSamplingMode Aux B (Trigger input) sampling mode.
int chan1Selection Signal selection for SMA output 1.

See CRONO_ConfigOutputs() for selection table.

int chan2Selection Signal selection for SMA output 2.

See CRONO_ConfigOutputs() for selection table.

int chan3Selection Signal selection for SMA output 3.

See CRONO_ConfigOutputs() for selection table.

CRONO_PixelMode countingMode Camera operation mode.
int deadTimeNs SPAD deadtime in ns.
cronoBool externalGateInvert True if external start is inverted.
double externalGateThreshold Threshold for external gate signal.
int externalStartDivisionFactor Division factor for external start.
cronoBool externalStartPosedge True if external start is active on rising edge.
double externalStartThreshold Threshold for external start signal.
int externalTriggerBurstCount Number of frames to be acquired for each trigger pulse.
double frameRate Start frequency (actual if internal, maximum expected if external).
cronoBool gateIsExternal True if gate signal is externally generated.
cronoBool half1Enable True if 1st half of imager is enabled.

Meaningfull only for 128x1 version.

cronoBool half2Enable True if 2nd half of imager is enabled.

Meaningfull only for 128x1 version.

int integPeriodFrames Number of frames to be integrated for histogram or frame accumulation.
uint16_t internalGatePattern[MAX_PATTERN_LENGTH] Pattern of internal gate, as a sequence of OFF and ON periods in ns.
int internalGatePatternLenght Number of elements in the gate pattern.
uint16_t laserSyncPattern[MAX_PATTERN_LENGTH] Pattern of laser sync signal, as a sequence of OFF and ON periods in ns.
int laserSyncPatternLenght Number of elements in the gate sync pattern.
cronoBool startIsExternal True if start signal is externally generated.

Typedef Documentation

◆ CRONO_H

typedef struct Crono* CRONO_H

Type CRONO_H.

Handle to the CRONO structure, to be passed to all SDK functions.

◆ cronoBool

typedef uint8_t cronoBool

Type cronoBool.

Boolean type (8 bit)

Enumeration Type Documentation

◆ CRONO_AuxInputMode

Crono auxiliary inputs sampling mode enumeration.

Auxiliary inputs sampling mode: none, rising edge, falling edge, both edges.

Enumerator
OFF 

Do not sample the auxiliary input.

RISING_EDGE 

Sample the auxiliary input on rising edge.

FALLING_EDGE 

Sample the auxiliary input on falling edge.

BOTH_EDGES 

Sample the auxiliary input on both rising and falling edges.

◆ CRONO_PixelMode

Crono pixel mode enumeration.

CRONO operation mode, photon timing or photon counting.

Enumerator
TIMING 

Event timing mode.

In this mode the arrival time of each photon with respect to the start signal is measured.

COUNTING 

Event counting mode.

In this mode the number of detected photons in each frames is accumulated, like in a conventional camera.

◆ CRONO_Return

Error table.

Error codes returned by the Crono SDK functions.

Enumerator
NO_ERR 

The function returned successfully.

DEVICE_NOT_FOUND 

No Crono device was found.

LOGIC_VERSION_FAIL 

The version of the camera firmware is not compatible.

DEVICE_NOT_OPEN 

There is no open device.

DEVICE_ALREADY_OPEN 

There is already an open device.

DEVICE_OPEN_AS_CONVERTER 

The device is open as data converter.

INVALID_DATA_FILE 

Data file format is not valid.

SENSOR_FAILED 

Hardware error.

Contact MPD.

POWER_FAILED 

Hardware error.

Contact MPD.

INVALID_PIXEL_NUMBER 

Pixel number out of bound.

INVALID_DEAD_TIME 

Deadtime out of bound.

INVALID_HALVES_CONFIG 

Halves configuration is not valid.

At least one half must be enabled.

INVALID_START_RATE 

Start rate out of bound.

INVALID_DIVISION_FACTOR 

Division factor out of bound.

INVALID_FRAME_BURST_COUNT 

Frame burst value out of bound.

INVALID_GATE_LENGHT 

Gate length out of bound.

INVALID_LASER_SYNC_LENGHT 

Laser sync length out of bound.

INVALID_CONFIG 

Configuration is not valid.

INVALID_THRESHOLD 

Threshold out of bound.

NO_SUCH_FILE_OR_DIRECTORY 

File not found.

ACQ_ONGOING 

Acquisition is ongoing.

ACQ_EXT_TRIG_TIMEOUT 

Timeout waiting for external trigger.

RAM_FULL 

Camera RAM is full.

NULL_POINTER 

A NULL pointer was passed to the function.

PATTERN_TOO_LONG 

Pattern too long.

INVALID_CHANNEL 

Channel out of bound.

INVALID_ENUM 

Enum out of bound.

FPGA_FAILED 

Camera not responding.

Please check camera power supply and data connections. If error persists, Contact MPD.

FPGA_TIMEOUT 

Communication timeout.

Please check camera power supply and data connections. If using external FrameStart, do not remove the signal for more than 10s during an acquisition.

◆ CRONO_SensorType

Crono sensor types enumeration.

Enumerator
CRONO_8X8 

8x8 pixels sensor

CRONO_128X1 

128x1 pixels sensor